eslint-disable vue/no-mutating-props
<script lang="ts" setup>
// import Api from '~/api'
// import { Common } from '~/common'
// import type { ContactModel, OrderModel } from '~/model'

// const props = defineProps<{
//   order: OrderModel | undefined
//   modelValue: boolean
// }>()

// const emits = defineEmits([
//   'update:modelValue',
//   'delete',
// ])

// const searchInput = ref('')
// const allContacts = ref([] as ContactModel[])
// const aliasMap = ref(new Map<string, string>())
// const materialsFiltered = computed(() => {
//   if (!searchInput.value) {
//     return allContacts.value
//   }
//   else {
//     const getAlias = (x: ContactModel) => aliasMap.value.get(`${x.name}${x.phone}`) || ''
//     return allContacts.value.filter(x => getAlias(x).includes(searchInput.value))
//   }
// })

// function chooseItem(item: ContactModel) {
//   if (!props.order) {
//     return
//   }
//   props.order.deliveryPerson = item
//   close()
// }

// onMounted(async () => {
//   // 获取订单，根据使用次数进行排序
//   const allOrder = await Api.Order.getAll()
//   const counter = new Map<string, number>()
//   for (const order of allOrder) {
//     const dp = order.deliveryPerson
//     if (!dp) {
//       continue
//     }
//     const sigature = `${dp.name}${dp.phone}`
//     const oldVal = counter.get(sigature)
//     if (oldVal === undefined) {
//       counter.set(sigature, 1)
//     }
//     else {
//       counter.set(sigature, oldVal + 1)
//     }
//   }
//   const contacts = await Api.Contact.getAll()
//   allContacts.value = contacts.filter(x => x.numberPlate)
//   allContacts.value.sort((a, b) => {
//     const ka = counter.get(`${a.name}${a.phone}`) || 0
//     const kb = counter.get(`${b.name}${b.phone}`) || 0
//     return kb - ka
//   })

//   // 计算alias
//   for (const contact of allContacts.value) {
//     const _alias = Common.genAlias(contact)
//     aliasMap.value.set(`${contact.name}${contact.phone}`, _alias)
//   }
// })

// function close() {
//   emits('update:modelValue', false)
// }

// function handleCloseDelete() {
//   close()
//   emits('delete')
// }
</script>

<!-- <template>
  <div v-if="order">
    <Dialog
      :show="modelValue"
      title="选择提货人/配送员"
      :show-cancel-button="true"
      cancel-button-color="red"
      cancel-button-text="清除"
      @update:show="$emit('update:modelValue', $event)"
      @cancel="handleCloseDelete"
    >
      <div p2>
        当前: {{ order.deliveryPerson ? order.deliveryPerson.name : '-' }}
      </div>
      <Field v-model="searchInput" mb2 bg-light-5 />
      <div h-30vh flex flex-wrap of-auto bg-gray-1 text-center>
        <div
          v-for="(item, index) in materialsFiltered"
          :key="index"
          p2
          style="width:50%"
          b-b="1 solid gray-3"
          @click="chooseItem(item)"
        >
          {{ item.name }}<br>
          {{ item.phone }}<br>
          {{ item.numberPlate }}
        </div>
      </div>
    </Dialog>
  </div>
</template> -->

<style scoped>

</style>
